using System.ComponentModel.DataAnnotations.Schema;
using System.Data.Entity.ModelConfiguration;

namespace QldtSdh.DAL.Models.Mapping
{
    public class KhoaHoc_NganhDaoTao_NCSMap : EntityTypeConfiguration<KhoaHoc_NganhDaoTao_NCS>
    {
        public KhoaHoc_NganhDaoTao_NCSMap()
        {
            // Khoá chính
            this.HasKey(t => t.MaKhoaHocNganhDaoTaoNCSGUID);

            // Các cột
            this.Property(t => t.MaKhoaHocNganhDaoTaoNCSGUID)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.MaKhoaHocNCSGUID)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.MaNganhDaoTaoNCSGUID)
                .IsRequired()
                .HasMaxLength(50);

            this.Property(t => t.MaNCSGUID)
                .IsRequired()
                .HasMaxLength(50);

            // Ánh xạ Property của POCO vào Column của Table
            this.ToTable("KhoaHoc_NganhDaoTao_NCS");
            this.Property(t => t.MaKhoaHocNganhDaoTaoNCSGUID).HasColumnName("MaKhoaHocNganhDaoTaoNCSGUID");
            this.Property(t => t.MaKhoaHocNCSGUID).HasColumnName("MaKhoaHocNCSGUID");
            this.Property(t => t.MaNganhDaoTaoNCSGUID).HasColumnName("MaNganhDaoTaoNCSGUID");
            this.Property(t => t.MaNCSGUID).HasColumnName("MaNCSGUID");

            // Các quan hệ
            this.HasRequired(t => t.NghienCuuSinh)
                .WithMany(t => t.KhoaHoc_NganhDaoTao_NCS)
                .HasForeignKey(d => d.MaNCSGUID);

            this.HasRequired(t => t.KhoaHocNCS)
                .WithMany(t => t.KhoaHoc_NganhDaoTao_NCS)
                .HasForeignKey(d => d.MaKhoaHocNCSGUID);

            this.HasRequired(t => t.NganhDaoTaoNCS)
                .WithMany(t => t.KhoaHoc_NganhDaoTao_NCS)
                .HasForeignKey(d => d.MaNganhDaoTaoNCSGUID);

        }
    }
}
